(function () {
	
	jQuery("#gradingLevel").select2().trigger("change");
	
	//添加菜单，弹出弹窗
    jQuery('.addBtn').on('click', function () {
    		jQuery('#id').val('');
        jQuery('#gradingName').val('');
        jQuery('#gradingIdentify').val('');
        jQuery('#gradingBewrite').val('');
    		jQuery('#gradingLevel').val('').trigger("change");
    		
    		jQuery('#gradingScale').val('');
    		
    		setCheckbox('#userShow',true);
    		setCheckbox('#partShow',true);
    		setCheckbox('#gridShow',true);
    		setCheckbox('#eventShow',true);
    		
    		removeDisabled();
    		setButtonShow(true,false,true);
    		
    });

    //table数据显示
    var serverData = {};
    var	serverTable;
    
    jQuery(document).ready(function () {
        serverTable=  jQuery('#dataTable').DataTable({
            "serverSide": true,
            "ordering": false,
            "ajax": {
                "dataType": "json",
                "type": "post",
                "cache": false,
                "url": window.rootPath+'/ui/grading/getpage',
                "data": function (d) {
                    return $.extend({}, d, serverData);
                }
            },
            columns: [{
                data: null,
                defaultContent: ""
            },
                {
                data: 'gradingName'
                },
                {
                data: 'gradingIdentify'
                },
                {
                	data: 'gradingBewrite'
                },
                {
                	data: 'gradingLevel.title'
                },
                {
                    data:null,
                    defaultContent: "",
                    render: function(data, type, full, meta){
                        var operate ='<button type="button" class="btn btn-sm btn-info editBtn" title="查看详情"><i class="fa fa-search"></i></button>'
                            +'<button type="button" class="btn btn-sm btn-info delBtn" title="删除"><i class="fa fa-remove"></i></button>';

                        return operate;

                    }
                }],
            "drawCallback": function ( oSettings ) {
                var k = 0;
                var total = oSettings.aiDisplay.length + oSettings._iDisplayStart;

                for ( var i=oSettings._iDisplayStart, iLen=total ; i<iLen ; i++ )
                {
                    $('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[k] ].nTr ).text( i+1 );
                    k++;
                }

                serverTable.off('click','tr');
                serverTable.on( 'click', 'tr', function (event) {
                    event=event||window.event;
                    var target=event.target||event.scrElement;
                    var data = serverTable.row( this ).data();

                    if(target.className.indexOf('fa-remove')!=-1 || target.className.indexOf('delBtn')!=-1){

                        deleteInfo(data);
                    }

                    if(target.className.indexOf('fa-search')!=-1||target.className.indexOf('editBtn')!=-1){

                        editInfo(data);
                    }
                    if(target.className.indexOf('fa-sign-in')!=-1||target.className.indexOf('addNode')!=-1){

                        setNode(data,data.gradingName);
                    }
                    return;
                } );
            }
        });
        
        
        var deleteInfo=function(data){
            if(!data) return;
            $.springLemonDialog({
                content:'确认模块：'+data.gradingName+'？',//确认文本
                clickButton:function(sender,modal,index){//按钮事件处理
                    //index:0 确认    1：取消
                    //sender:事件源 如按钮，sender.html()可得到按钮文字如：取消
                    if(index==0){
                        var url=window.rootPath+"/ui/grading/delete/"+data.id;
                        jQuery.ajax({
                            url:encodeURI(url),
                            cache:false,
                            type : "post",
                            dataType:"json",
                            success:function(data){
                            		message(data.msg);
                            		if(data.code == '1'){
                            			serverTable.draw(false);
                                    jQuery('.addBtn').click();
                                    message("删除信息成功!");
                            		}
                            }
                        });
                    }
                    $(this).closeDialog(modal);
                }
            });
        };
        //编辑信息
        var editInfo=function(data){
            if(!data) return;
            var url=window.rootPath +'/ui/grading/getNode'+'?Id='+data.id;
            jQuery.ajax({
            			url:url,
        				cache:false,
        				type :"get",
        				dataType:"json",
        				contentType:'application/json;charset=utf-8',//解决返回数据中的中文乱码问题
        				success:function(data){
        					jQuery('#id').val(data.node.id);
        					jQuery('#useNum').val(data.useNum);
        					jQuery('#gradingName').val(data.node.gradingName);
        					jQuery('#gradingBewrite').val(data.node.gradingBewrite);
        					jQuery('#gradingIdentify').val(data.node.gradingIdentify);
        					jQuery('#gradingScale').val(data.node.gradingScale);
        					
        					setCheckbox('#userShow',data.node.userShow);
	        	        		setCheckbox('#partShow',data.node.partShow);
	        	        		setCheckbox('#gridShow',data.node.gridShow);
	        	        		setCheckbox('#eventShow',data.node.eventShow);
              		
        					var gradingLevel = data.node.gradingLevel;
        					if(typeof(gradingLevel) != 'undefined'){
        						jQuery('#gradingLevel').val(gradingLevel.id).trigger("change");
        						if('' != jQuery('#gradingLevel').val(gradingLevel.id)){
        							jQuery('#gradingIdentify').removeAttr("disabled");
        							var obj = $("#gradingLevel option:selected");
        							var length = obj.attr('data-length');
        							if(length == 0){
	                  				jQuery('#gradingIdentify').val('');
	                  				jQuery('#gradingIdentify').removeAttr("datatype");
        							}else{
        								var datatype = '*,*1-'+length;
        								jQuery('#gradingIdentify').attr('datatype',datatype);
        							}
        						}
        					}else{
        						jQuery('#gradingLevel').val('').trigger("change");
        					}
        					addDisabled();
        					setButtonShow(true,true,false);
        				}
            })
        };
        
        //查询
        jQuery('.searchBtn').on('click',function(){
            serverData.key=jQuery('#search').val();
            serverTable.draw();
        })
        
        //撤销查询
        jQuery('.resetBtn').on("click",function(){
            jQuery('#search').val('');
            serverData.key ='';
            serverTable.draw();
        });
        
        jQuery('.editInfoBtn').on('click',function(){
    			setButtonShow(true,false,true);
			removeDisabled();
        });
        
        //新增，编辑保存
        jQuery('.saveBtn').on('click',function(){
            if(jQuery("#modalForm") && !jQuery("#modalForm").Validform({tiptype:3, showAllError:true}).check(false)){
                return;
            };
            $("#right").mLoading("show");
            var data={
                    id:jQuery('#id').val(),
                    gradingName:jQuery('#gradingName').val(),
                    gradingIdentify:jQuery('#gradingIdentify').val(),
                    gradingLevel:jQuery('#gradingLevel').val(),
                    gradingBewrite:jQuery('#gradingBewrite').val(),
                    
                    gradingScale : jQuery('#gradingScale').val(),
                    
                    userShow : jQuery('#userShow').is(":checked"),
                    partShow : jQuery('#partShow').is(":checked"),
                    gridShow : jQuery('#gridShow').is(":checked"),
                    eventShow : jQuery('#eventShow').is(":checked")
                };
                var url=window.rootPath+'/ui/grading/save';
                jQuery.ajax({
                    url:encodeURI(url),
                    type:'post',
                    data:JSON.stringify(data),
                    dataType:'json',
                    contentType:'application/json;charset=utf-8',
                    success: function (result) {
                    	    message(result.msg);
                        serverTable.draw(false);
                        jQuery('.addBtn').click();
                        $("#right").mLoading("hide");
                    }
                });
        });
        
        //select2 选择事件
        jQuery("#gradingLevel").on('select2:select',function(){
        		var obj = $("#gradingLevel option:selected");
        		var gradingLevelId = obj.val();
        		if(''==gradingLevelId){
        			jQuery('#gradingIdentify').val('');
        	        jQuery('#gradingIdentify').attr('disabled',true);
        		}else{
        			var length = obj.attr('data-length');
        			if(length == 0){
        				jQuery('#gradingIdentify').val('');
        				jQuery('#gradingIdentify').attr("disabled",true);
        				jQuery('#gradingIdentify').removeAttr("datatype");
        			}else{
        				var datatype = '*,*1-'+length;
        				jQuery('#gradingIdentify').removeAttr("disabled");
        				jQuery('#gradingIdentify').attr('datatype',datatype);
        			}
        		}
    		});
        
        jQuery('.addBtn').click();
    });
    
    function addDisabled(){
    	
    		jQuery('#gradingName').attr('disabled',true);
        jQuery('#gradingBewrite').attr('disabled',true);
    		jQuery('#gradingScale').attr('disabled',true);
    	
    		jQuery('#gradingIdentify').attr('disabled',true);
    		jQuery('#gradingLevel').attr('disabled',true);
    		
		jQuery('#userShow').attr('disabled',true);
		jQuery('#partShow').attr('disabled',true);
		jQuery('#gridShow').attr('disabled',true);
		jQuery('#eventShow').attr('disabled',true);
    }
    
    function removeDisabled(){
    		
    		var useNum = jQuery('#useNum').val();
    		
    		jQuery('#gradingName').removeAttr("disabled");
        jQuery('#gradingBewrite').removeAttr("disabled");
    		jQuery('#gradingScale').removeAttr("disabled");
    		
		jQuery('#userShow').removeAttr("disabled");
		jQuery('#partShow').removeAttr("disabled");
		jQuery('#gridShow').removeAttr("disabled");
		jQuery('#eventShow').removeAttr("disabled");
		
		if(useNum == '0' || jQuery('#id').val() == ''){
			jQuery('#gradingLevel').removeAttr('disabled');
		}else{
			jQuery('#gradingLevel').attr('disabled',true);
		}
		
		var obj = $("#gradingLevel option:selected");
		var length = obj.attr('data-length');
		
		if(typeof(length) == 'undefined' || length == 0){
			jQuery('#gradingIdentify').val('');
			jQuery('#gradingIdentify').attr("disabled",true);
			jQuery('#gradingIdentify').removeAttr("datatype");
		}else{
			var datatype = '*,*1-'+length;
			jQuery('#gradingIdentify').attr('datatype',datatype);
			if(useNum == '0'){
				jQuery('#gradingIdentify').removeAttr('disabled');
			}else{
				jQuery('#gradingIdentify').attr("disabled",true);
			}
		}
    }
    
    function setButtonShow(addBtn,editInfoBtn,saveBtn){
    		if(addBtn){
    			jQuery('.addBtn').removeAttr('disabled'); 
    		}else{
    			jQuery('.addBtn').attr('disabled',true);
    		}
    		if(editInfoBtn){
    			jQuery('.editInfoBtn').removeAttr('disabled'); 
    		}else{
    			jQuery('.editInfoBtn').attr('disabled',true);
    		}
    		if(saveBtn){
    			jQuery('.saveBtn').removeAttr('disabled'); 
    		}else{
    			jQuery('.saveBtn').attr('disabled',true);
    		}
    }
    
    function setCheckbox(obj,value){
		$(obj).prop("checked", value);
    }

//    ////////////////初始化模型的树结构/////////////////////////
//    var modalSetting = {
//        edit:{
//            enable: true,
//            showRemoveBtn:setRemoveBtn,
//            showRenameBtn:false,
//            drag:{
//            		isCopy: false,
//            		isMove: true,
//            		prev: true,
//            		next: true,
//            		inner: true
//            }
//        },
//        data: {
//            simpleData: {
//                enable: true,
//                idKey: "id",
//                pIdKey: "parentId",
//                rootParentId: 0
//            }
//        },
//        view:{
//            showLine:true
//        },
//        check: {
//			enable: false,
//			chkStyle: "radio",
//			radioType: "level"
//		},
//        callback:{
//            beforeRemove: beforeRemove,
//            onRemove:onRemove,
//            //onCheck:editNewModule,
//            beforeDrag:beforeDrag,
//            beforeDrop:beforeDrop,
//            onClick:getInfo
//        }
//
//    };
//    
//    //获取子节点信息列表
//    function getInfo(e, treeId, treeNode){
//    		var Id=treeNode.id;
//	    	serverData2.id = Id;
//	    	serverTable2.draw(false);
//    }
//    
//    //菜单树点击编辑节点
//    function editNewModule(e, treeId, treeNode){
//    		var Id=treeNode.id;
//    		if('0' == Id) return;
//    		getNode(Id);
//    }
//    
//    function getNode(Id){
//        var url=window.rootPath +'/ui/grading/getNode'+'?Id='+Id;
//        jQuery.ajax({
//            url:url,
//            cache:false,
//            type :"get",
//            dataType:"json",
//            contentType:'application/json;charset=utf-8',//解决返回数据中的中文乱码问题
//            success:function(data){
//                jQuery('#id').val(data.node.id);
//                jQuery('#gradingName').val(data.node.gradingName);
//                jQuery('#gradingBewrite').val(data.node.gradingBewrite);
//                jQuery('#gradingIdentify').val(data.node.gradingIdentify);
//                
//                jQuery('#gradingScale').val(data.node.gradingScale);
//                
//                jQuery('#userShow').val(data.node.userShow.toString());
//	    			jQuery('#partShow').val(data.node.partShow.toString());
//	    			jQuery('#gridShow').val(data.node.gridShow.toString());
//	    			jQuery('#eventShow').val(data.node.eventShow.toString());
//            		
//            		var gradingLevel = data.node.gradingLevel;
//                if(typeof(gradingLevel) != 'undefined'){
//                		jQuery('#gradingLevel').val(gradingLevel.id).trigger("change");
//                		if('' != jQuery('#gradingLevel').val(gradingLevel.id)){
//                			jQuery('#gradingIdentify').removeAttr("disabled");
//                			var obj = $("#gradingLevel option:selected");
//                			var length = obj.attr('data-length');
//                			if(length == 0){
//                				jQuery('#gradingIdentify').val('');
//                				jQuery('#gradingIdentify').removeAttr("datatype");
//                			}else{
//                				var datatype = '*,*1-'+length;
//                				jQuery('#gradingIdentify').attr('datatype',datatype);
//                			}
//                		}
//                }else{
//                		jQuery('#gradingLevel').val('').trigger("change");
//                }
//                
//            }
//        });	
//    }
//    
//    //删除按钮的设置
//    function setRemoveBtn(treeId, treeNode) {
//        //判断为顶级节点则不显示删除按钮
//        if(treeNode.level == 0)
//            return false;
//        else
//            return true;
//
//    }
//    
//  //拖拽前执行  
//    var level;
//    function beforeDrag(treeId, treeNodes) {
//    		if(treeNodes.length > 1){
//    			message("一次只能移动一个节点信息!");
//    			return false;
//    		}
//		level = treeNodes[0].level;  
//    		return true;  
//    }  
//     //拖拽释放之后执行  
//    function beforeDrop(treeId, treeNodes, targetNode, moveType) {
//        if((level == targetNode.level && moveType != 'inner' ) || (level == targetNode.level + 1 && moveType == 'inner' )){
//             var d = {id:treeNodes[0].id,targetId:targetNode.id,moveType:moveType};  
//             var url=window.rootPath +'/ui/grading/move';
//             jQuery.ajax({
//                 url:encodeURI(url),
//                 type :"post",
//                 data:JSON.stringify(d),
//                 dataType:"json",
//                 contentType:"application/json;charset=utf-8",//解决返回数据中的中文乱码问题
//                 success: function(data){
//                	 	if(data.code != '1'){
//                	 		message(data.msg);
//                	 	}
//                	 	refreshNode();
//                 }
//             });  
//            //return true;  
//        } else{
//        		message('只能进行同级排序！');  
//        		return false;  
//        }  
//    }
//    
//    //初始化 层级树
//    var primaryNode=[];
//    var url = window.rootPath +'/ui/grading/getAllNodes';
//    jQuery.ajax({
//        url:url,
//        cache:false,
//        type :"get",
//        data:'',
//        dataType:"json",
//        contentType:'application/json;charset=utf-8',//解决返回数据中的中文乱码问题
//        success:function(data){
//            primaryNode.push(
//                {
//                    id: 0,
//                    name: "评分层级",
//                    open: "true"
//                    // iconSkin:"diy03"
//                }
//            );
//            for (var i = 0; i < data.nodes.length; i++) {
//                primaryNode.push(data.nodes[i]);
//            }
//            $.fn.zTree.init($("#gradingTree"),modalSetting,primaryNode);
//        }
//    });
//    
//    /** 
//     * 刷新当前节点 
//     */  
//    function refreshNode() {
//    		jQuery.ajax({
//            url:url,
//            cache:false,
//            type :"get",
//            data:'',
//            dataType:"json",
//            contentType:'application/json;charset=utf-8',//解决返回数据中的中文乱码问题
//            success:function(data){
//            		    primaryNode = [];
//                    primaryNode.push(
//                        {
//                            id: 0,
//                            name: "评分层级",
//                            open: "true",
//                            level:0
//                            // iconSkin:"diy03"
//                        }
//                    );
//                    for (var i = 0; i < data.nodes.length; i++) {
//                        primaryNode.push(data.nodes[i]);
//                    }
//                $.fn.zTree.init($("#gradingTree"),modalSetting,primaryNode);
//            }
//        });
//    	
//    }
//    
//    //////////////////删除节点/////////////////////////////
//    function beforeRemove(treeId, treeNode) {
//        return confirm("确认删除 " + treeNode.name + "节点 吗？");
//    }
//    function onRemove(e, treeId, treeNode) {
//        //此处treeNode 为当前节点,
//        var str ='' ;
//        var selectPId=treeNode.getParentNode().id;
//        var url=window.rootPath+'/ui/grading/deleteNodes';
//        str=treeNode.id;
//        str = getAllChildrenNodes(treeNode,str);//获得所有id的字符串，方法在myTree.js
//        var d = {
//                "str":str,
//                "selectPId":selectPId
//            }
//        jQuery.ajax({
//            url:encodeURI(url),
//            type :"post",
//            data:JSON.stringify(d),
//            dataType:"json",
//            contentType:"application/json;charset=utf-8",//解决返回数据中的中文乱码问题
//            success:function(data){
//                serverTable.draw(false);
//            }
//        });
//    }
//
//    ////////////////添加节点///////////////////////////////
//    function setNode(data,levelName){
//        var treeObj= $.fn.zTree.getZTreeObj("gradingTree");
//        var selectNodes=treeObj.getSelectedNodes(treeObj);
//        var selectNode=selectNodes[0];
//        var levelName=levelName;
//        if(selectNode){
//            var parentLevel = selectNode.level;
//            var nodeLevel = data.gradingLevel.extended1;
//            if(parentLevel != (nodeLevel - 1)){
//            		message("只能绑定相匹配的评分层级信息！");
//            		return;
//            }
//            $.springLemonDialog({
//                title:'系统提示',//标题   默认为   系统提示
//                content:'是否要绑定'+levelName+'节点？',//确认文本
//                bootstrapModalOption:{keyboard: true},
//                clickButton:function(sender,modal,index){//按钮事件处理
//                    //index:0 确认    1：取消
//                    //sender:事件源 如按钮，sender.html()可得到按钮文字如：取消
//                    if(index==0){
//                        var url=window.rootPath+'/ui/grading/saveNode';
//                        var d = {
//                                "parentId":selectNode.id,
//                                "id":data.id
//                            };
//                        jQuery.ajax({
//                            url:encodeURI(url),
//                            cache:false,
//                            type :"post",
//                            data: JSON.stringify(d),
//                            dataType:"json",
//                            contentType:"application/json;charset=utf-8",//解决返回数据中的中文乱码问题
//                            success:function(data){
//                                if(data.code==1){
//                                    var newNode={
//                                        "id": data.Grading.id,
//                                        "parentId":selectNode.id,
//                                        "name":levelName,
//                                        "level":data.Grading.gradingLevel.extended1
//                                        //   iconSkin:"diy05"
//
//                                    }
//                                    selectNode=treeObj.addNodes(selectNode,newNode);
//                                    
//                                }else{
//                                		message(data.msg);
//                                }
//                                serverTable.draw(false);
//                            }
//                        });
//                    }
//                    $(this).closeDialog(modal);
//                }
//            });
//        }
//        else{
//            $.springLemonDialog({
//                title:'系统提示',//标题   默认为   系统提示
//                content:'请选择一个节点',//确认文本
//                bootstrapModalOption:{keyboard: true},
//                clickButton:function(sender,modal,index){//按钮事件处理
//                    //index:0 确认    1：取消
//                    //sender:事件源 如按钮，sender.html()可得到按钮文字如：取消
//                    $(this).closeDialog(modal);
//                }
//
//            });
//        }
//    }

})();